feat: centralized AI context in mcp-local/ for all tools#112
feat: centralized AI context in mcp-local/ for all tools#112rviannaoliveira wants to merge 5 commits intomainfrom
Conversation
Adds OpenSpec change proposal to create a single source of truth for AI context across Claude Code, Copilot, Cursor, Gemini and Codex. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates a single source of truth for AI context across all tools: - mcp/context/ with rules, module-graph, platform patterns (android/ios/flutter) - mcp/context/skills/ with new-component, review-pr, run-build, android-testing, compose-ui - Native files for Copilot (.github/copilot-instructions.md), Cursor (.cursorrules), Gemini (.gemini/context.md), and Codex (AGENTS.md) — each with critical rules inline + reference to mcp/context/ - Community explainer docs with Mermaid diagrams in .claude/ and .github/ - Updated CLAUDE.md to reference mcp/context/ instead of .claude/instructions/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Better communicates that this is local AI context (not a running MCP Server) while still connecting to the MCP concept. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rviannaoliveira
left a comment
There was a problem hiding this comment.
Review — feat: centralized AI context in mcp-local/
Este PR e de infraestrutura (tooling), nao de componente, entao os criterios de review foram ajustados para o escopo real da mudanca.
O que esta bem
Context files (mcp-local/context/):
android.md,ios.md,flutter.md— bem estruturados, cobrem abstracoes, folder structure, build e convencoes de teste. Conteudo preciso e alinhado com o CLAUDE.md.rules.md— extracao limpa das regras arquiteturais, em ingles, acessivel para todos os tools (Copilot, Cursor, Gemini, Codex).skills/new-component.md— excelente: step-by-step com exemplos de codigo e checklist completo incluindo onAction, registro no Manager, testes e docs.skills/review-pr.md— checklist solido e bem categorizado.
generate-tests.yml:
- Simplificacao do trigger
workflow_run -> pull_request[closed]+ filtromerged == truee mais direto e elimina a etapa de resolucao de contexto. - Uso de
base.shaao inves deorigin/maine mais preciso para o diff do PR.
CLAUDE.md:
- Update minimo e correto — apenas atualiza os paths de
.claude/instructions/paramcp-local/context/.
Problemas encontrados
BLOCKER — caminho absoluto hardcoded em android_kmp/.claude/settings.local.json
O arquivo contem "Read(//Users/rodrigo/rep/CraftD/**)". Este path e especifico da sua maquina — qualquer outro contribuidor que abrir o projeto com Claude tera essa permissao quebrada. O double-slash tambem e suspeito.
Fix: remover essa linha ou substituir por path relativo ao projeto, se a ferramenta suportar.
MEDIO — settings.local.json nao deveria ser commitado
Ambos .claude/settings.local.json e android_kmp/.claude/settings.local.json foram adicionados ao repositorio. O sufixo local indica configuracao especifica do usuario — o Claude Code trata esses arquivos como overrides locais que nao devem ser versionados.
Verifique se .gitignore exclui settings.local.json. Configuracoes globais de permissao do projeto devem ir em settings.json (sem o .local).
MEDIO — generate-tests.yml perde a garantia de build aprovado
O trigger workflow_run aguardava o pr.yml terminar com sucesso antes de rodar. O novo trigger pull_request[closed] dispara imediatamente ao merge, sem garantia de que o build passou.
Na pratica, como o merge normalmente exige PR checks, isso pode ser aceitavel — mas vale avaliar se o workflow de geracao de testes deve realmente rodar mesmo quando o build esta quebrado (ex: merge forcado pelo admin).
BAIXO — numeracao dos steps no generate-tests.yml dessincronizada
Apos remover o step "1. Resolve trigger context", o checkout virou "1. Checkout" corretamente, mas o step seguinte permanece "3. Verifica se ha arquivos .kt modificados" — deveria ser "2.". Comentarios inconsistentes.
BAIXO — openspec/changes/centralized-ai-context/ nao foi arquivado
A change restrict-generate-tests-to-merged-prs foi corretamente arquivada em openspec/changes/archive/. Mas centralized-ai-context/ — que e exatamente o que este PR implementa — ainda esta em openspec/changes/ como change ativa. Deveria ser arquivada junto com este PR para fechar o ciclo.
Resumo
| Item | Status |
|---|---|
| Context files (android/ios/flutter/rules) | Aprovado |
| Skills (new-component, review-pr, compose-ui) | Aprovado |
| CLAUDE.md update | Aprovado |
| generate-tests.yml simplification | Aprovado com ressalva |
| Hardcoded path em settings.local.json | Blocker |
| settings.local.json commitado | Rever |
| Step comments dessincronizados | Cosmetico |
| openspec/centralized-ai-context nao arquivado | Rever |
gabrielbmoro
left a comment
There was a problem hiding this comment.
Deveria ser .claude, .gemini, .github?
Por ser mcp, acredito que podemos ter uma unica especificação para diferentes AIs, se amanha surgir uma nova AI vamos precisar criar .novaAi, ai fica muito palha
- Flatten mcp-local/context/ → mcp-local/ (remove /context/ layer) - Move platform files into mcp-local/instructions/ - Move architectural rules + conventions into mcp-local/skills/architecture.md - Move all skills into mcp-local/skills/ (android-gradle-logic, android-testing, compose-ui) - Create mcp-local/init.md as shared initializer with session token verification - Slim CLAUDE.md, .gemini/context.md, .github/copilot-instructions.md to identical thin pointers - Replace scattered AI_CONTEXT.md files with single doc_ai_context.md at root - Delete .claude/instructions/ and duplicate CraftD-specific skills from .claude/skills/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Summary
mcp-local/context/as a single source of truth for AI context across all toolsmcp-local/mcp-local/skills/as self-describing Markdown (readable by any model)doc_ai_context.mdTools covered
CLAUDE.md(updated).github/copilot-instructions.md(new).cursorrules(new).gemini/context.md(new)AGENTS.md(new)Test plan
copilot-instructions.mdis loaded.cursorrulesis loadedmcp-local/README.mdrenders Mermaid diagram correctly on GitHubCLAUDE.mdreferencesmcp-local/context/instead of.claude/instructions/🤖 Generated with Claude Code